home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 32 / Amiga Format AFCD32 (Nov 1998, Issue 117).iso / -seriously_amiga- / programming / e / newgui / src / examples / testbitmap.e < prev    next >
Text File  |  1998-08-10  |  4KB  |  91 lines

  1. OPT     OSVERSION = 37
  2. OPT     PREPROCESS
  3. OPT     LARGE
  4.  
  5. MODULE  'graphics/gfxmacros'
  6. MODULE  'graphics/rastport'
  7. MODULE  'intuition/screens'
  8. MODULE  'newgui/newgui'
  9. MODULE  'newgui/ng_fillhook'
  10. MODULE  'newgui/ng_showerror'
  11.  
  12. CONST   GUI_MAIN = 1
  13.  
  14. ENUM    ERR_WORKBENCH=100
  15.  
  16. DEF     wb:PTR TO screen,
  17.         bitmap
  18.  
  19. PROC main()     HANDLE
  20.  getbitmaps()
  21.   newguiA([
  22.         NG_WINDOWTITLE,         'NewGUI - Demo',        -> Titel des Fensters
  23.         NG_FILLHOOK,            {fillrect},             -> Prozedur zum Füllen einer Gruppe/Fensterhintergrund!
  24.         NG_GUIID,               GUI_MAIN,               -> Gui-ID
  25.         NG_GUI,         
  26.                 [EQROWS,
  27.                 [DBEVELR,
  28.                 [FILLGROUP1,                            -> Füllgruppe 1
  29.                 [EQROWS,  
  30.                 [SPACE],
  31.                         [TEXT,'Pattern Filling and','BitMap-Backfilling,',FALSE,3],
  32.                 [SPACE],
  33.                         [TEXT,'Features in NewGUI!','BitMap-Groupfilling!',FALSE,3],
  34.                 [SPACE],
  35.                 [BEVELR,
  36.                 [FILLGROUP2,                            -> Füllgruppe 2 (Bitmap!)
  37.                 [EQROWS,
  38.                         [DBEVELR,
  39.                         [EQROWS,
  40.                                 [SPACE],
  41.                         [DBEVELR,
  42.                         [EQROWS,
  43.                                 [SPACE]
  44.                         ]],
  45.                                 [SPACE]
  46.                         ]]
  47.                 ]]],
  48.                 [SPACE],
  49.                         [TEXT,' ',' ',FALSE,3]]]],
  50.                 [BEVELR,
  51.                 [ROWS,
  52.                         [SBUTTON,0,'Ende']]]]
  53.         ,NIL,NIL])
  54. EXCEPT DO
  55.  freebitmaps()
  56.   IF exception THEN ng_showerror(exception)             -> Print Exceptions for NewGUI
  57.  CleanUp(exception)
  58. ENDPROC
  59.  
  60. PROC getbitmaps()
  61.  IF (wb:=LockPubScreen('Workbench'))=NIL THEN Raise(ERR_WORKBENCH)
  62.   bitmap:=wb.rastport.bitmap                            -> This is really bad because a programm shouldn't
  63.                                                         -> grab a screens bitmap if it doesn't own this screen
  64.                                                         -> but this is only for demonstration!
  65. ENDPROC
  66.  
  67. PROC freebitmaps()
  68.  IF (wb<>NIL) THEN UnlockPubScreen(NIL,wb)
  69. ENDPROC
  70.  
  71. PROC fillrect(rp,x,y,width,height,type)
  72.  DEF    oldbpen=0,
  73.         oldapen=1
  74.   SELECT        type
  75.         CASE    NG_FILL_WINDOW                          -> Window-Filling (Back)
  76.          ng_FillBitMapPattern(rp,x,y,width,height,bitmap,100,100)       -> Patterfilling mit einer Bitmap
  77.         CASE    FILLGROUP1                              -> Füllgruppe 1
  78.          oldbpen:=SetBPen(rp,0)                         -> Hintergrund = schwarz
  79.           oldapen:=SetAPen(rp,0)                        -> Vordergrund = blau
  80.            SetAfPt(rp,[$FFFF,$FFFF]:INT,1)              -> Füllmuster setzen (ACHTUNG! Makrodefinition in "gfxmacros", PREPROCESS wird benötigt!)
  81.             RectFill(rp,x,y,width,height)               -> Füllen ...
  82.            SetBPen(rp,oldbpen)                          -> Hintergrundfarbe wieder auf alten Stand
  83.           SetAPen(rp,oldapen)                           -> Vordergrundfarbe wieder auf alten Stand
  84.         CASE    FILLGROUP2                              -> Füllgruppe 2
  85.          ng_FillBitMapPattern(rp,x,y,width,height,bitmap,100,100)       -> Patterfilling mit einer Bitmap
  86. /*      ...     ...
  87.         CASE    FILLGROUP6
  88.         ...     ...                                     */
  89.   ENDSELECT
  90. ENDPROC
  91.